package com.hst.capacity.application.biz;

import com.hst.capacity.domain.model.request.OrderForDispatchParam;
import com.hst.capacity.domain.model.request.OrderParam;
import com.hst.capacity.domain.model.request.dispatch.DispatchDriverParam;
import com.hst.capacity.domain.model.request.dispatch.DispatchParam;
import com.hst.capacity.domain.model.request.dispatch.DispatchPartyDriverParam;
import com.hst.capacity.domain.model.request.dispatcher.DispatcherOrderParam;
import com.hst.capacity.domain.model.request.export.OrderExportParam;
import com.hst.capacity.domain.model.response.PagingResultVO;
import com.hst.capacity.domain.model.response.export.ExportOrderVO;
import com.hst.capacity.domain.model.response.order.OrderDetailVO;
import com.hst.capacity.domain.model.response.order.OrderForDispatchVO;
import com.hst.capacity.domain.model.response.order.OrderOperationLogVO;
import com.hst.capacity.domain.model.response.order.OrderVO;

import java.util.List;

public interface OrderBiz {

    OrderVO refresh(OrderParam param);

    Boolean changeDriver(DispatchDriverParam param);
    Boolean dispatchDriver(DispatchDriverParam param);
    Boolean dispatchPartyDriver(DispatchPartyDriverParam param);

    OrderDetailVO getOrderDetail(String idOrder);

    List<OrderOperationLogVO> getOrderOperationLogList(String idOrder);

    Boolean changeDriverIncome(String idOrder,Float driverIncome);

    Boolean finishOrder(String idOrder);

    Boolean cancelOrder(String idOrder,String operator);

    PagingResultVO<OrderForDispatchVO> getOrderDispatchList(OrderForDispatchParam param);

    Long findUnDispatchVirtualOrder(String idFranchisee);

    OrderVO virtualAcceptOrder(DispatchParam param);

    List<ExportOrderVO> findAllExportOrderListData(OrderExportParam param);

    List<ExportOrderVO> findExportOrderListDataWhenAccountMatch(OrderExportParam param);

    PagingResultVO<ExportOrderVO> findExportOrderPageListData(OrderExportParam param);

    //调度员用
    PagingResultVO<OrderForDispatchVO> dispatherPendingOrderList(DispatcherOrderParam param);

}
